
Minutes, IBIS Quality Committee

07 Apr 2015

11:00-12:00 EST (08:00-09:00 PST)

ROLL CALL

eASIC:                            * David Banas
Ericsson:                           Anders Ekholm
Intel:                              Michael Mirmak
                                  * Eugene Lim
IO Methodology                    * Lance Wang
Signal Integrity Software         * Mike LaBonte
Teraspeed Labs:                   * Bob Ross

Everyone in attendance marked by *

NOTE: "AR" = Action Required.

-----------------------MINUTES ---------------------------
Mike LaBonte conducted the meeting.

Call for IBIS related patent disclosures:

- None

Call for opens:

- Bob: We need to file a BUG for the AMI reserved word issue.
  - We have a revised parser contract.
  - I am proposing
- Mike: The two of should have call.

ARs:

- Bob draft IBISCHK 6.0.2 development requirements.
  - Done.
  - Bob: It will be 6.1.0 actually.

- Mike recover percent format specifications in spreadsheet.
  - No new progress.

- Mike add comments to CMPNT, DLY, MSPEC sections.
  - No new progress.

- Lance add comments to EBD section.
  - No new progress.

- Bob add comments to CIRCUIT section.
  - No new progress.


PyIBIS:

- Mike: David showed this at DesignCon 2014.
  - We would be interested in a DLL sanity checker or new AMI reference simulator.
- David show a Python Notebook web page.
- David: The original development was to serve a particular use.
  - It is more general now.
- Lance: Can this create DLLs?
- David: No it is for testing existing models.
  - Testing requires some computing environment.
  - That could be MatLab or, in this case, Python.

- David: This is on the PyPy website.
  - It is easily installed.
  - The source code is at GitHub.
- David explained the Notebook.
- David: Designers usually have a high level math tool.
  - They usually have optimum coefficients for filters, etc.
  - In AMI they can set only integer values, not actual coefficients.
  - PyIBIS-AMI has very little code.
  - It wraps the DLL in Python.
  - It provides data structures to making working with the DLL simpler.
  - AMI_Init has many parameters that we don't want to type each time.
  - The structure is updated and passed to the wrapper.
  - This gives MatLab-like power in Python.

  - Python dynamic documentation is attached to objects.
  - The object can be queried to get the documentation.
  - PyIBIS-AMI is a package with module.
  - Modules are imported, not packages.
  - Every module has a __doc__ attribute that can be printed.

  - The AMIModelInitializer method has the data structure for Init.
  - The AMIModel requires only the DLL file.
  - The AMIModelInitializer is passed data settings.
  - As a minimum the root_name must be set.

- Bob: Is the eASIC model provided as part of the package?
- David: No.

- David showed an impulse response.
- David: Python commands are used to plot this.
- Mike: Where did the impulse response come from?
- David: The AMIModelInitializer class has defaults.

- David: This sample TX model has taps.
  - We add these in Python and set them to 1 and initialize again.
  - Now the tap blips are visible in the impulse response.
- Mike: Was AMI_Close called?
- David: That is called by a destructor.

- David showed nested loop code to try many tap values.
- David: We now have the tap coefficients/weights for each integer parameter value.
  - We can calculate tap sums for each case to check.
  - The plot of sums of weights shows sums of both 1.0 and 1.1.
  - The model has to constrain the taps.
- David showed formulas for calculating tap weight constraints.
- David: Tap 0 and the others are calculated differently.

- David showed Python code to find the slope of post1 as a function of the other taps.
  - The slopes of the tap are identical.
  - Designers need to know what X(n) to pass in to get a certain B(n).
- David showed the process for determine all required values.

- Mike: Is there also an AMI_GetWave() wrapper?
- David: Yes

Meeting ended: 12:04

Next meeting April 14

